package de.draufi.xml;
import java.util.List;

import org.jdom2.Element;

import de.draufi.logging.myLogger;
import de.draufi.tracking.Wegpunkt;

public class TCXStrecke {

	private Wegpunkt[] wegpunkte = null; 
	private Element root = null;
	
	public TCXStrecke(Element seg, Element r){
		
		root = r;
		List<Element> l = seg.getChildren("Trackpoint", root.getNamespace());
		if (l.size() > 0) {
			wegpunkte = new Wegpunkt[l.size()];
			for (int i=0; i < l.size(); i++) {
				try {
					Element e = l.get(i);
					Element p = e.getChild("Position", root.getNamespace());
					String lon = "";
					String lat = "";
					if (p != null){
						lon = p.getChildText("LongitudeDegrees", root.getNamespace());
						lat = p.getChildText("LatitudeDegrees", root.getNamespace());
					} else {
						lon = wegpunkte[i-1].getLon();
						lat = wegpunkte[i-1].getLat();
					}
					String hei = e.getChildText("AltitudeMeters", root.getNamespace());
					String tm = e.getChildText("Time", root.getNamespace());
					wegpunkte[i] = new Wegpunkt(lon, lat, hei, tm);
				} catch (NullPointerException npe) {
					myLogger.getLog(this.getClass().getName()).severe("Fehler beim Lesen des " + i + ". Elements");
					npe.printStackTrace();
				}
				
			}
		}
	}
	
	public int getAnzahlWegpunkte(){
		int result = 0;
		
		if (wegpunkte != null) {
			result = wegpunkte.length;
		}
		
		return result;
	}
	
	public Wegpunkt getStart(){
		return wegpunkte[0];
	}
	
	public Wegpunkt getEnde(){
		return wegpunkte[getAnzahlWegpunkte()-1];
	}
	
	
}
